Two's complement arithmetic is known.
Clipping, according to Wikipedia, “is a form of distortion that limits a signal once it exceeds a threshold. Clipping may occur when a signal is recorded by a sensor that has constraints on the range of data it can measure, it can occur when a signal is digitized, or it can occur any other time an analog or digital signal is transformed. Clipping may be described as hard, in cases where the signal is strictly limited at the threshold, producing a flat cutoff; or it may be described as soft, in cases where the clipped signal continues to follow the original at a reduced gain. Hard clipping results in many high frequency harmonics; soft clipping results in fewer higher order harmonics and intermodulation distortion components.
“In digital signal processing, clipping occurs when the signal is restricted by the range of a chosen representation. For example in a system using 16-bit signed integers, 32767 is the largest positive value that can be represented, and if during processing the amplitude of the signal is doubled, sample values of 32000 should become 64000, but instead they are truncated to the maximum, 32767. Clipping is preferable to the alternative in digital systems—wrapping—which occurs if the digital hardware is allowed to “overflow”, ignoring the most significant bits of the magnitude, and sometimes even the sign of the sample value, resulting in gross distortion of the signal.
“The incidence of clipping may be greatly reduced by using floating point numbers instead of integers. However, floating point numbers are usually less efficient to use, sometimes result in a loss of precision, and they can still clip if a number is extremely large or small.
“Clipping can be detected by viewing the signal (on an oscilloscope, for example), and observing that the tops and bottoms of waves aren't smooth anymore. When working with images, some tools can highlight all pixels that are pure white, allowing the user to identify larger groups of white pixels and decide if too much clipping has occurred. To avoid clipping, the signal can be dynamically reduced using a limiter. If not done carefully, this can still cause undesirable distortion, but it prevents any data from being completely lost.”
Rounding, according to Wikipedia, is “the process of reducing the number of significant digits in a number. The result of rounding is a “shorter” number having fewer non-zero digits yet similar in magnitude. The result is less precise but easier to use. For example: 73 rounded to the nearest ten is 70, because 73 is closer to 70 than to 80. Rounding can be analyzed as a form of quantization. There are many different rules that can be followed when rounding. Some of the more popular are described below.
“Common method: This method is commonly used in mathematical applications, for example in accounting. It is the one generally taught in elementary mathematics classes. This method is also known as Symmetric Arithmetic Rounding or Round-Half-Up (Symmetric Implementation): Decide which is the last digit to keep. Increase it by 1 if the next digit is 5 or more (this is called rounding up). Leave it the same if the next digit is 4 or less (this is called rounding down). Examples: 3.044 rounded to hundredths is 3.04 (because the next digit, 4, is less than 5). 3.045 rounded to hundredths is 3.05 (because the next digit, 5, is 5 or more). 3.0447 rounded to hundredths is 3.04 (because the next digit, 4, is less than 5). For negative numbers the absolute value is rounded. Examples: −2.1349 rounded to hundredths is −2.13. −2.1350 rounded to hundredths is −2.14.
“Round-to-even method: This method is also known as unbiased rounding, convergent rounding, statistician's rounding, Dutch rounding or bankers' rounding. It is identical to the common method of rounding except when the digit(s) following the rounding digit starts with a five and has no non-zero digits after it. The new algorithm is: Decide which is the last digit to keep. Increase it by 1 if the next digit is 6 or more, or a 5 followed by one or more non-zero digits. Leave it the same if the next digit is 4 or less. Otherwise, if all that follows the last digit is a 5 and possibly trailing zeroes; then change the last digit to the nearest even digit. That is, increase the rounded digit if it is currently odd; leave it if it is already even.
“With all rounding schemes there are two possible outcomes: increasing the rounding digit by one or leaving it alone. With traditional rounding, if the number has a value less than the half-way mark between the possible outcomes, it is rounded down; if the number has a value exactly half-way or greater than half-way between the possible outcomes, it is rounded up. The round-to-even method is the same except that numbers exactly half-way between the possible outcomes are sometimes rounded up—sometimes down.
“Although it is customary to round the number 4.5 up to 5, in fact 4.5 is no nearer to 5 than it is to 4 (it is 0.5 away from both). When dealing with large sets of scientific or statistical data, where trends are important, traditional rounding on average biases the data upwards slightly. Over a large set of data, or when many subsequent rounding operations are performed as in digital signal processing, the round-to-even rule tends to reduce the total rounding error, with (on average) an equal portion of numbers rounding up as rounding down. This generally reduces the upwards skewing of the result.
“Round-to-even is used rather than round-to-odd as the latter rule would prevent rounding to a result of zero. Examples: 3.016 rounded to hundredths is 3.02 (because the next digit (6) is 6 or more). 3.013 rounded to hundredths is 3.01 (because the next digit (3) is 4 or less). 3.015 rounded to hundredths is 3.02 (because the next digit is 5, and the hundredths digit (1) is odd). 3.045 rounded to hundredths is 3.04 (because the next digit is 5, and the hundredths digit (4) is even). 3.04501 rounded to hundredths is 3.05 (because the next digit is 5, but it is followed by non-zero digits) . . . .
“Other methods of rounding exist, but use is mostly restricted to computers and calculators, statistics and science. In computers and calculators, these methods are used for one of two reasons: speed of computation or usefulness in certain computer algorithms. In statistics and science, the primary use of alternate rounding schemes is to reduce bias, rounding error and drift—these are similar to round-to-even rounding. They make a statistical or scientific calculation more accurate.
“Other methods of rounding include “round towards zero” (also known as truncation) and “round away from zero”. These introduce more round-off error and therefore are rarely used in statistics and science; they are still used in computer algorithms because they are slightly easier and faster to compute. Two specialized methods used in mathematics and computer science are the floor (always round down to the nearest integer) and ceiling (always round up to the nearest integer).
“Stochastic rounding is a method that rounds to the nearest integer, but when the two integers are equidistant (e.g., 3.5), then it is rounded up with probability 0.5 and down with probability 0.5. This reduces any drift, but adds randomness to the process. Thus, if you perform a calculation with stochastic rounding twice, you may not end up with the same answer. The motivation is similar to statistician's rounding . . . .
“The objective of rounding is often to get a number that is easier to use, at the cost of making it less precise. However, for evaluating a function with a discrete domain and range, rounding may be involved in an exact computation, e.g. to find the number of Sundays between two dates, or to compute a Fibonacci number. In such cases the algorithm can typically be set up such that computational rounding errors before the explicit rounding do not affect the outcome of the latter. For example, if an integer divided by 7 is rounded to an integer, a computational rounding error up to 1/14 in the division (which is much more than is possible in typical cases) does not affect the outcome. In the case of rounding down an integer divided by 7 this is not the case, but it applies e.g. if the number to be rounded down is an integer plus ½, divided by 7.”
Rounding functions exist in many programming languages and applications such as C, PHP, Python, JavaScript, Visual Basic, Microsoft SQL Server, Microsoft Excel. U.S. Pat. No. 4,589,084 5/1986 describes an example of state of the art rounding apparatus.
Conventional flash memory technology is described in the following publications inter alia:    [1] Paulo Cappelletti, Clara Golla, Piero Olivo, Enrico Zanoni, “Flash Memories”, Kluwer Academic Publishers, 1999    [2] G. Campardo, R. Micheloni, D. Novosel, “CLSI-Design of Non-Volatile Memories”, Springer Berlin Heidelberg New York, 2005
The disclosures of all publications and patent documents mentioned in the specification, and of the publications and patent documents cited therein directly or indirectly, are hereby incorporated by reference.